package Tp2Principal;

import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.filechooser.FileNameExtensionFilter;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 *
 * @author Usager
 */
public class MenuBarre extends MenuBar {

    /**
     * @param args the command line arguments
     */
    private MenuItem mnuQuitter;//Le Menu item quitter
    private MenuItem mnuNew;// Le Menu nouvelle partie
    private MenuItem mnuOuvrir;// Le Menu Ouvrir une partie déja existante
    private MenuItem mnuEnregistrer;// Le menu pour enregistré
    private MenuItem mnuPropos;//le Menu item À propos
    private MenuItem mnuAide; //Le menu item aide
    private MenuItem mnuStatistiques;// le menu item Statistique
    private Menu menuFichier;////Le Menu fichier
    private Menu menuPropos;//le Menu À propos
    Action action = new Action();
    Damier damier;

    public MenuBarre(Damier damier) {

        this.damier = damier;

        menuFichier = new Menu("Fichier");
        menuPropos = new Menu("?");

        mnuQuitter = new MenuItem("Quitter");
        mnuNew = new MenuItem("Nouvelle partie");
        mnuOuvrir = new MenuItem("Ouvrir une partie...");
        mnuEnregistrer = new MenuItem("Enregistrer");

        mnuAide = new MenuItem("Aide...");
        mnuStatistiques = new MenuItem("Statistiques...");
        mnuPropos = new MenuItem("À Propos...");

        menuPropos.add(mnuAide);
        menuPropos.add(mnuStatistiques);
        menuPropos.addSeparator();
        menuPropos.add(mnuPropos);

        mnuAide.addActionListener(action);
        mnuStatistiques.addActionListener(action);
        mnuPropos.addActionListener(action);

        menuFichier.add(mnuNew);
        menuFichier.add(mnuOuvrir);
        menuFichier.add(mnuEnregistrer);
        menuFichier.addSeparator();
        menuFichier.add(mnuQuitter);

        mnuNew.addActionListener(action);
        mnuOuvrir.addActionListener(action);
        mnuEnregistrer.addActionListener(action);
        mnuQuitter.addActionListener(action);

        this.add(menuFichier);
        this.add(menuPropos);
        mnuQuitter.addActionListener(action);
    }

    public class Action implements ActionListener {

        public void actionPerformed(ActionEvent ae) {
            if (ae.getSource() == mnuQuitter) {
                System.exit(0);
            } else if (ae.getSource() == mnuNew)
            {
                damier.reinitialise();
            } else if (ae.getSource() == mnuOuvrir)
            {
                selectionFichier(); //ouvre un JFileChooser
            }else if (ae.getSource() == mnuEnregistrer)
            {
                //fichier.enregistré
            } else if (ae.getSource() == mnuStatistiques)
            {
                JOptionPane.showMessageDialog(null, "Nombre de parties jouées: "+
                        "\nJoueur 1 : " + " parties gagnées\nJoueur 2 : "+
                        " parties gagnées", "Parties gagnées", JOptionPane.PLAIN_MESSAGE);
            } else if (ae.getSource() == mnuAide)
            {
                JOptionPane.showMessageDialog(null, "Chaque joueur joue à tour " +
                        "de rôle dans le but  de prendre le contrôle du damier." +
                        "\nPour ce faire, vous pouvez soit dédoubler un pion vers" +
                        " une case adjacente ou en déplacer un de 2 cases." +
                        "\nLorsqu’un pion est déplacé immédiatement à côté d’un " +
                        "pion de couleur adverse, ce dernier \nchange de couleur " +
                        "et devient la possession du premier joueur.\nIl est " +
                        "possible pour chaque joueur d’utiliser une fois par " +
                        "partie un « SuperRedd ».\nLe pion qui sera choisi pour " +
                        "être « SuperRedd » ainsi que tous les pions qu’il \na " +
                        "converti à sa couleur lors de son déplacement resteront" +
                        " jusqu’à la fin de la partie de cette couleur.\nLa partie" +
                        " se termine lorsqu’un des joueurs a réussi à éliminer " +
                        "tous les pions de l’autre couleur, \nce qui le déclare " +
                        "gagnant, ou lorsque la planche de jeu n’a plus aucune " +
                        "case libre. Dans ce cas, \nle vainqueur est celui qui a " +
                        "le plus de pions de sa couleur sur la grille.",
                        "Règles du jeu", JOptionPane.INFORMATION_MESSAGE);
            } else if (ae.getSource() == mnuPropos)
            {
                JOptionPane.showMessageDialog(null, "Programme réalisé par " +
                        "Catherine B.Tremblay et Benoît Fortin", "Créateurs",
                        JOptionPane.INFORMATION_MESSAGE);
            }
        }

        public void selectionFichier()
        {
            String nomFichier;
            String chemin;
            
            JFileChooser choix= new JFileChooser();
            //Filtre
            FileNameExtensionFilter filtre= new FileNameExtensionFilter("Fichier Parties","parties");
            choix.addChoosableFileFilter(filtre);
            int retour=choix.showOpenDialog(null);
            
            if(retour==JFileChooser.APPROVE_OPTION)
            {
                nomFichier=choix.getSelectedFile().getName();
                chemin=choix.getSelectedFile().getAbsolutePath();
            }
        }
    }
}
